Oscillator Evaluator (Analysis tool)Oscillator Evaluator (Analysis tool)
The oscillator evaluator is a tool that will help you analyse and compare the oscillator of your choice to another 2 oscillators.
By selecting the strategy with which you will analyze the oscillators, you will be able to see the behaviour of the oscillators in different aspects.
First there is a moving average increase or decrease strategy, that will give you a good idea of the correlation of the oscillator with the price.
The second is a commom 2 MA crossover strategy, that will give you and idea of the validaty of that oscillator as a strategy or as a trend filter.
The third strategy is a cross over 0 signal, that will go long on a crossover of 0 and short on a crossunder 0. This helps you see how good is the oscillator at evaluating suport and resistance areas and give you an idea of its balance.
The forth strategy is a Buy/Sell on extremes of the oscillator and will let you know how good is your strategy at spotting good places to buy and sell.
The fith strategy is to evaluate how goood the oscillator is as a mean reversion filter or how good it is at spotting small price changes.
The sixth strategy is similar to the last but is focused on how good is the oscillator spotting good places to take profits on trending strategies.
The 6 strategies in the script produce signals from the oscillator and from the oscillator only.
In conclusion this tool can be used to measure your oscillator and see if it really is as good as you think in comparison to others.
This script is not intended to be used as a full strategy but as a tool.
Cari dalam skrip untuk "the strat"
Ultimate Strategy TemplateHello Traders
As most of you know, I'm a member of the PineCoders community and I sometimes take freelance pine coding jobs for TradingView users.
Off the top of my head, users often want to:
- convert an indicator into a strategy, so as to get the backtesting statistics from TradingView
- add alerts to their indicator/strategy
- develop a generic strategy template which can be plugged into (almost) any indicator
My gift for the community today is my Ultimate Strategy Template
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
For doing so:
1) Find in your indicator where are the conditions printing the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator wether it's a MACD, ZigZag, Pivots, higher-highs, lower-lows or whatever indicator with clear buy and sell conditions
//@version=4
study(title='Moving Average Cross', shorttitle='Moving Average Cross', overlay=true, precision=6, max_labels_count=500, max_lines_count=500)
type_ma1 = input(title="MA1 type", defval="SMA", options= )
length_ma1 = input(10, title = " MA1 length", type=input.integer)
type_ma2 = input(title="MA2 type", defval="SMA", options= )
length_ma2 = input(100, title = " MA2 length", type=input.integer)
// MA
f_ma(smoothing, src, length) =>
iff(smoothing == "RMA", rma(src, length),
iff(smoothing == "SMA", sma(src, length),
iff(smoothing == "EMA", ema(src, length), src)))
MA1 = f_ma(type_ma1, close, length_ma1)
MA2 = f_ma(type_ma2, close, length_ma2)
// buy and sell conditions
buy = crossover(MA1, MA2)
sell = crossunder(MA1, MA2)
plot(MA1, color=color_ma1, title="Plot MA1", linewidth=3)
plot(MA2, color=color_ma2, title="Plot MA2", linewidth=3)
plotshape(buy, title='LONG SIGNAL', style=shape.circle, location=location.belowbar, color=color_ma1, size=size.normal)
plotshape(sell, title='SHORT SIGNAL', style=shape.circle, location=location.abovebar, color=color_ma2, size=size.normal)
/////////////////////////// SIGNAL FOR STRATEGY /////////////////////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Basically, I identified my buy, sell conditions in the code and added this at the bottom of my indicator code
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal , and -1 for the bearish signal
Now you can connect your indicator to the Strategy Template using the method below or that one
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings and in the Data Source field select your 🔌Connector🔌 (which comes from your indicator)
From then, you should start seeing the signals and plenty of other stuff on your chart
🔥 Note that whenever you'll update your indicator values, the strategy statistics and visual on your chart will update in real-time
Settings
- Color Candles : Color the candles based on the trade state (bullish, bearish, neutral)
- Close positions at market at the end of each session : useful for everything but cryptocurrencies
- Session time ranges : Take the signals from a starting time to an ending time
- Close Direction : Choose to close only the longs, shorts, or both
- Date Filter : Take the signals from a starting date to an ending date
- Set the maximum losing streak length with an input
- Set the maximum winning streak length with an input
- Set the maximum consecutive days with a loss
- Set the maximum drawdown (in % of strategy equity)
- Set the maximum intraday loss in percentage
- Limit the number of trades per day
- Limit the number of trades per week
- Stop-loss: None or Percentage or Trailing Stop Percentage or ATR
- Take-Profit: None or Percentage or ATR
- Risk-Reward based on ATR multiple for the Stop-Loss and Take-Profit
This script is open-source so feel free to use it, and optimize it as you want
Alerts
Maybe you didn't know it but alerts are available on strategy scripts.
I added them in this template - that's cool because:
- if you don't know how to code, now you can connect your indicator and get alerts
- you have now a cool template showing you how to create alerts for strategy scripts
Source: www.tradingview.com
I hope you'll like it, use it, optimize it and most importantly....make some optimizations to your indicators thanks to this Strategy template
Special Thanks
Special thanks to @JosKodify as I borrowed a few risk management snippets from his website: kodify.net
Additional features
I thought of plenty of extra filters that I'll add later on this week on this strategy template
Best
Dave
DMI Modified StrategyAs promised a strategy of my DMI Modified indicator! (See link below for indicator).
=== How does it work? ===
Instead of plotting the positive direction of +DI and negative direction for -DI, we subtract the +DI with the -DI on scales of 100 to -100.
The result is plotted with a oscillator to identify the current trend.
DMI Modified supports multiple moving averages (default is EMA with length of 9). You can disable moving averages smoothing in settings.
//== About the Strategy ==
Buys when the line crosses over the Zero line.
Sells when the line crosses under the Zero line.
The DMI modified strategy is pretty much clean, without any filtering besides the DMI Modified and a moving average to smooth it.
Works best to catch a trend and more suitable for 1 hour and above time frame. Stay tuned for updates.
On sideways you will get more false signals. as i said , it's a clean version without much bells and whistles for you to experiment.
== Oscillator Colors ==
GREEN : Strong Up Trend as DMI Modified is above zero line and DMI modified is ascending.
LIGHT GREEN: Still up trend but weakening as DMI modified is above zero but descending.
RED: Strong Downtrend as DMI Modified is below zero line and DMI modified is descending.
LIGHT RED: Still down trending but weakening as DMI modified is below zero but ascending.
== Notes ==
Short is enabled by default.
Bar coloring is disabled by default.
== Links ==
DMI modified indicator:
Like if you like and Enjoy! Follow for more upcoming indicators/strategies: www.tradingview.com
Bull Call Spread Entry StrategyThis strategy script uses the "Spread Entry Strength" overlay indicator script I designed to show entry timing optimized for an Option Bull
Call Spread.
As for this strategy...
The defaults for the strategy itself are as follows:
Period for strategy: 1/1/18 to 12/1/2021. This can be changed to a different period using the settings.
Condition for entry:
Bull Spread Entry Strength >= "Overlay Signal Strength Level"
Limit entry is used, price must be <= close when signaled
Entry occurs by next day or the order is cancelled
Condition for exit (uses a timed exit):
Bars passed since order entry >= 30 (6 weeks..~42 calendar days)
Thursday (day before "option" expiration date... assuming weekly options exist)
All of the user settings from the overlay are pulled into this for customization purposes. Details of the actual Spread Entry Strength overlay are as follows (copied from my shared indicator):
2 background shadings will occur:
The background will shade blue if the ticker is prime for a Bullish Call spread.
The background will shade purple if the the ticker is prime for a Bearish Put spread.
In theory, if the SE Strength is at one of the extremes of the Bear or Bull side, then a spread is prime for entry.
To calculate this, 8 conditions receive a 1 or zero dependent on whether the condition is true (1) or false (0), and then all of those are summed. The primary gist of the strength comes from Nishant's book, or my interpretation thereof, with some additives that limits what I need to review (such as condition 8 below.)
The 8 Bull Conditions are:
1) Bollinger Bands are outside of the Keltner Channels
2) ADX is trending up
3) RSI is trending up
4) -DI is trending down
5) RSI is under 30
6) Price is below the lower Keltner Channel
7) Price is between the lower Bollinger Band and the Bollinger basis.
8) Price at one point within the last 5 bars was below the lower Bollinger Band
The 8 Bear Conditions are the inverse conditions (except the first):
1) Bollinger Bands are outside of the Keltner Channels
2) ADX is trending down
3) RSI is trending down
4) +DI is trending up
5) RSI is over 70
6) Price is above the upper Keltner Channel
7) Price is between the upper Bollinger Band and the Bollinger basis.
8) Price at one point within the last 5 bars was above the upper Bollinger Band
There is a "market noise" filter that will filter out shading when another market move is considered, i.e. if you don't want to see the potential trade when QQQ moves more than 1% then do the following in the settings:
Check "Market Filter"
Enter QQQ in the "Market Ticker To Use"
Enter 1 in the "Market Too Hot Level"
Press Ok
Obviously, the same holds true for the "Market Too Cool Filter."
Second release notes:
Overlay Signal Strength Level - You can set your own "level" for the overlay in the settings, instead of having to change the script code itself. I have the default set to 6. A lower number shows more overlays, a higher number shows fewer (i.e. more conditions have been met.).
Provide Narrative (Troubleshooting) - Narrative label created with several outputs that will show after the last bar. This narrative needs to be turned on in the settings, as the default is "off" ... unchecked.
Remove Strength Indicator When Squeezed - when checked no overlays will be produced regardless of "scoring." Default is off.
Show Squeezes (Will Override Indicator When Concurrent) - overlays an orange background when the ticker is in a squeeze. I am still working on the accuracy here, but it's usable. This will override the strength indicator as well. This needs to be turned on, if you want it.
Short SMA Period - period used to calculate the short SMA, used in the narrative only, at this point in time.
Medium SMA Period - period used to calculate the medium SMA, used in the narrative only, at this point in time.
Long SMA Period - period used to calculate the medium SMA, used in the narrative only, at this point in time.
Outside of the settings... a few calculation adjustments here and there have occurred and some color shading adjustments to allow for the adjustable level setting.
Quansium Series A BacktestThis comes with preconfigured setups or strategies. Simply choose one from our list based on the timeframe it was made for. Leverage can be changed; to keep trading safe, a maximum of 2 is allowed. In our findings, this was able to trade crypto (specifically BTC ), MES (Micro E-mini S&P 500 Index Futures ), and stocks. It is important to know that setups A, B, C, and D use variable position sizing, and dynamic stop loss/trailing stop/take profit, these parameters are provided through the alerts. The rest of the strategies were created with a simpler approach in mind, just plainly entry/exits signals.
Quansium as a framework:
Price reformat: we take the price source (Open, Close, High, Low) and remove any noise that affects the accuracy of our signals.
Time awareness: we take several time periods of the data on the chart such as start, end, and whole. We use this to add more depth to our signals.
Position size: our backtest tries to recreate as much as the real world trades as possible so our position is determined by the current equity. We also use the volatility of the market to increase or decrease our exposure or risk.
Risk awareness: stop loss, take profit, trailing stop are the risk exits we use to provide our users some peace of mind. These parameters are totally dynamic and follow the same behavior of the market.
Signals filtering: to make almost non-existent any errors and increase the quality of our trades, our indicators go through multiple phases, this avoid double entries or early exits, and help maintain a record of what has transpired and what’s currently taking place.
Indicators: whenever we can we use custom code or our own functions instead of the defaults ones provided. This gives us total control of what we’re trying to achieve. In many cases we tend to combine several indicators’ logic into one creating a more personalized take on it.
Easiness: since we started our main goal has been to provide the easiest and fastest way to alerts’ creation. It has taken us years to reach this level where now we already provide a list of preset strategies so the user doesn’t have to spend much time tinkering with scripts and more on other matters, because we know life is more than just trading.
Raw signals: we provide the option to turn off as much of our advanced features such as stop loss, take profit, trailing stop, dynamic sizing, etc, etc for a simple approach. Trade signals still go through the signals filtering method mentioned above,
Timeframe pairing: we take trading very seriously, by no way we’ll want the user to lose money (although such thing is expected because past results aren’t an indicative of futures ones), through years of experience we have found what are usually common mistakes the user makes, this feature allows us to only activate the strategy if the right timeframe is chosen.
Trend filters: through the years we have improved the arts of the trend. We like to keep things simple but yet powerful. We observe the macro and micro trend of the security. This helps confirm we are entering at the desirable timing. We also incorporate volume and volatility into decision making, we simply programmed it to trade when these are increasing and higher than the average values observed in both the short and long term. Finally we take into account the strength of the pair to make our final choice of whether to enter or wait, and if anything flashes contrary movement then we cancel the upcoming signal and stop monitoring until the next one comes along.
Full automated risk: stop loss, take profit, and trailing stops usually are set in percentages, and optimized even more using the current market behavior to become more adaptive. But always remains some sort of fixation, so the user must choose a value somewhere. This is where our framework shines the most, as previously mentioned before when we take time into our calculations, we use several periods to observe performance and get values that keep our risk exits natural and closest to the flow of the market itself.
Setups:
A: Centered oscillator with the difference of several moving averages with more sensitive settings. Momentum focused.
B: Centered oscillator using simple moving averages. Trend-Following focused.
C: Centered oscillator using smoothed data with the help of faster moving averages. Trend-Following focused.
D: Centered oscillator with the difference of several moving averages with less sensitive settings. Trend-Following focused.
E: Centered oscillator with the difference of moving averages where the standard deviation is applied first. It uses less sensitive settings. Trend-Following focused.
F: Finds the relationship between multiple readings of the price’s relative strength to better pin-point downs and ups. Trend-Following focused.
G: Centered oscillator with the difference of moving averages where the standard deviation is applied first. It uses more sensitive settings. Momentum focused.
H: Multiple centered oscillators using various moving averages. Trend-Following focused.
I: Centered oscillator using simple moving averages. Momentum focused.
Note: The framework is composed of almost 1000 lines of code as compared to each indicator that makes up the setup which is around 10. The power from Quansium doesn't come from the strategies themselves but rather the overall system that turns simple signals into complex and advanced trades.
Strategy Tester:
Initial Capital: chosen value is $20,000, as an approximate to Bitcoin’s ATH (All-Time High). In previous iterations we noticed some trades won’t go through if the capital was less than the ATH.
Order Size: 100% of equity (although the script controls this, and this is of no regards to the results).
Pyramiding: 1, system doesn’t place multiple entries in a row, only one at a time.
Commission: This simulates order execution with custom trading fees. Commissions are turned off by default because this script works in various markets and each operates differently. In order to reach results that are close to real world conditions, it is imperative the user fills this based upon their broker or exchange data.
When we started, we were focused on finding the best indicator, or creating it ourselves. After years we came to realize that the secret is not in which indicator you use but the framework behind it. All strategies have bad, good, best, worst performance periods. The key of a good system is to help keep you safe when it’s down and maximize your potential when it’s up. We hope this material at the very minimum inspires you to keep going and not lose faith, because it is not the smartest who win but those who persevere.
A Physicist's Bitcoin Trading Strategy
1. Summary
This strategy and indicator were designed for, and intended to be used to guide trading activity in, crypto markets, particularly Bitcoin. This strategy uses a custom indicator to determine the state of the market (bullish vs bearish) and allocates funds accordingly. This particular variation also uses the custom indicator to determine when the market is significantly oversold and takes advantage of the opportunity (it buys the dip). The specific mathematical formula that is used to calculate the underlying custom indicator allows the trader to get in before, or near the start of, the bull trends, and get out before the bear trends. The strategy's properties dialogue box includes many display settings and parameters for optimization and customization to meet the user's needs and risk tolerance; this is both a tool to gauge the market, as well as a trading strategy to beat the market. Guidelines for parameter settings are provided. A sample dataset of backtest results using randomized parameters, both within the guidelines and outside the guidelines, is available upon request; notably, all trials outperformed the intended market (Bitcoin) during the 9-year backtest period.
2. The Indicator and Strategy
2.1. The Indicator
A mathematical formula is used to determine the state of the market according to three different "frequencies", which, for lack of better terminology, are called fast, moderate, and slow indicators. There are two parameters for each of the three indicators, one called response time and the other is a simple look-back period. Finally, four exponential moving averages are used to smooth each indicator. In total, there are 18 different levels of bullishness/bearishness. The purpose of using three indicators, rather than one, is to capture the full character of the market, from a macro/global scope down to a micro/local scope. I.e. the full indicator looks at the forest, the trees, and the branches, simultaneously.
2.2. The Strategy
The trend-trading strategy is very simple; there are only four types of orders: 1) The entire position (e.g. all bitcoins held) is sold (if it hasn't already been totally sold) when the indicator becomes maximally bearish, 2) When the movement of the indicator is in the bullish direction, the strategy dollar-cost-average (DCA) buys at an exponentially decreasing rate, i.e. it buys more in the early stages of the transition from bear->bull. 3) When the indicator is maximally bullish, it goes "all-in" † (if it hasn't already gone all-in), i.e. it converts all available cash into the underlying security/token. And, 4) when the movement of the indicator is in the bearish direction, the strategy DCA sells (again, exponentially decreasing) to get out quickly. No leverage is used in this strategy. The strategy never takes a short position.
A second "buy-the-dip" strategy is also used, and it is the synergy of these two strategies, together, that is responsible for most of the outperformance in the backtests (this strategy handily beats the non-dip-buying variation in backtests). To do this, the custom indicator is used to determine when the market is significantly oversold on a short-term basis, and the strategy responds by DCA buying. However, unlike the DCA buying during bull/bear transitions, the buy-the-dip DCA buying increases with time. Specifically, within each candle that is short-term oversold, the strategy converts 10% x # of candles since becoming oversold (up to a max of 6 candles) of available cash into the underlying security/token. I.e. the first buy is 10% of available cash and occurs in the first oversold candle, the second buy is 20% of available cash and occurs in the second oversold candle, etc. up to six consecutive oversold candles. Lastly, to ensure no conflicting orders and no leverage (buying more than what is affordable with the available cash in the fund), buy-the-dip orders take precedence over the trend-trading orders enumerated in the previous paragraph.
† Technically the strategy goes 99.5% in when it goes "all-in". This is to ensure no leverage is used given that there may be a commission of 0.5%.
3. Backtest Results
Backtest results demonstrate significant outperformance over buy-and-hold. The default parameters of the strategy/indicator have been set by the author to achieve maximum (or, close to maximum) outperformance on backtests executed on the BTCUSD (Bitcoin) chart. However, significant outperformance over buy-and-hold is still easily achievable using non-default parameters. Basically, as long as the parameters are set to adequately capture the full character of the market, significant outperformance on backtests is achievable and is quite easy. In fact, after some experimentation, it seems as if underperformance hardly achievable and requires deliberately setting the parameters illogically (e.g. setting one parameter of the slow indicator faster than the fast indicator). In the interest of providing a quality product to the user, suggestions and guidelines for parameter settings are provided in section (6). Finally, some metrics of the strategy's outperformance on the BTCUSD chart are listed below, both for the default (optimal) parameters as well as for a random sample of parameter settings that adhere to the guidelines set forth in section (6).
Using the default parameters, relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Total cumulative outperformance (total return of strategy minus total return of buy-n-hold): 13,000,000%.
Rolling 1-year outperformance: mean 318%, median 84%, 1st quartile 55%, 3rd quartile, 430%.
Rolling 1-month outperformance: mean 2.8% (annualized, 39%), median -2.1%, 1st quartile -7.7%, 3rd quartile 13.2%, 10th percentile -13.9%, 90th percentile 24.5%.
Using the default parameters, relative to buy-and-hold strategy, during specific periods,
Cumulative outperformance during the past year (August 2019-August 2020): 37%.
12/17/2016 - 12/17/2017 (2017 bull market) absolute performance of 2563% vs buy-n-hold absolute performance of 2385%
11/29/2012 - 11/29/2013 (2013 bull market) absolute performance of 14033% vs buy-n-hold absolute performance of 9247%
Using a random sample (n=20) of combinations of parameter settings that adhere to the guidelines outlined in section (6), relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Average total cumulative outperformance, from August 2011 to August 2020: 2,000,000%.
Median total cumulative outperformance, from August 2011 to August 2020: 1,000,000%.
4. Limitations
This strategy is basically a DCA-swing trading strategy, and as such it is intended to be used on the 6-hr chart. Similar performance is expected on daily chart, 12-hr chart, and 4-hr chart, but performance is likely to be limited when used on charts of shorter time-frames. However, due to the flexibility afforded by the large quantity of parameters, as well as the tools included, it may be possible to tweak the indicator settings to get some outperformance on smaller time-frames. Admittedly, the author did not spend much time investigating this.
As is apparent in the backtests, this strategy has very limited absolute performance during large bear markets, such as Bitcoin's 2018 bear market. As described, it does outperform the underlying security by a large amount in backtests, but a large absolute return is unlikely during large and prolonged declines (unless, of course, your unit of account is the underlying token, in which case an outperformance of the underlying is, by definition, an absolute positive return).
This strategy is likely to underperform if used to trade ETFs of broad equity markets. This strategy may produce a small amount of outperformance when used to trade precious metals ETFs, given that the parameters are set optimally by the user.
5. Use
The default parameters have already been set for highly optimal backtest results on the chart of BTCUSD (Bitcoin / US Dollar BITSTAMP), (although, a different combination of parameter settings may yet produce better results). Still, there is a great number of combinations that can be explored, so the user is free to tweak the settings to meet his/her/their needs. Some display options are provided to give the user a visual aid while tweaking the parameters. These include a blue/red background display of the custom indicator, a calibration system, and options to display information about the backtest results. The background pattern represents the various levels of bullishness/bearishness as semi-transparent layers of blue and red, with blue corresponding with bullish and red corresponding with bearish.
The parameters that affect the indicator are the response times, the periods, and some EMA lengths. The parameters that affect the quantity of contracts (tokens/shares/bitcoins/etc) to be bought/sold are the transitionary buy/sell rates. There are also two sets of date parameters.
The response time and period parameters are direct inputs into the underlying math formula and are used to create the base-level indicators (fast, moderate, and slow). The response times control the speed of each of the three indicators (shorter is fast, longer is slower) and the period controls how much historical data is used in computation. Information about how these should be set are included in section (6). Another set of parameters control EMA look-back periods that serve to smooth the base-level indicators. Increasing these EMA lengths makes the overall indicator less sensitive to short-term price action, while reducing them does the opposite. The effect of these parameters are obvious when the background blue/red visualization is displayed. Another EMA length is an EMA for the entire indicator. Increasing this parameter reduces the responsiveness of the trading strategy (buy/sell orders) to quick/small changes of the overall level of the indicator, so as to avoid unnecessary buying and selling in times of relatively small and balanced price perturbations. Note, changing this parameter does not have an effect on the overall indicator itself, and thus will not affect the blue/red background representation.
The transitionary buy/sell rates control the portion of the available asset to be converted to the other. E.g. if the buy rate is set to 90%, then 90% of the available cash will be used to buy contracts/tokens/shares/bitcoins during transitions bullish transitions, e.g. if the available cash at the start of the bullish transition is $10,000 and the parameter is set to 90%, then $9,000 will be used to buy in the first candle during which the transition is bullish, then $900 will be used to buy in the second candle, then $90 in the third candle, etc.
There are two dates that can be set. The first is the date at which the strategy goes all in. This is included because the buy-and-hold strategy is the benchmark against which this strategy is compared, so setting this date to some time before the strategy starts to make trades will show, very clearly, the outperformance of the strategy, especially when the initial capital parameter in the Properties tab is equal to the price of one unit of the underlying security on the date that is set, e.g. all-in on Bitcoin on 8/20/2011 and set initial capital to the BTCUSD price on that date, which was $11.70. The second date is a date to control when the strategy can begin to place trades.
Finally (actually, firstly in the Inputs dialogue box), a set of checkbox inputs controls whether or not the backtest is on or off, and what is displayed. The display options are the blue/red (bull/bear) background layers †, a set of calibrators, a plot of the total strategy equity, a plot of the cash position of the strategy, a plot of the size of the position of the strategy in contracts/shares/units (labeled as BTC position), and a plot of the rolling 1-year performances of buy-and-hold and the strategy.
About the calibrators: The calibration system allows the user to quickly assess and calibrate how well the indicator... indicates. Quite simply, the system has two parts: one plot that is the cumulative sum of the product of the indicator level and the change in the underlying price, i.e. sum of ‡, over all candles. The second part is a similar plot that is reduced according to the quickness with which the indicator changes, i.e. sum of . Maximizing the first plot at the expense of the second will cause the indicator to match the price action very well but therefore it will change very rapidly, from bullish to bearish, which is visualized by a background pattern that changes frequently from blue to red to blue. Ignoring the first plot and maximizing the second will also cause the indicator to more closely match the price action, but the transitions will be slower and less frequent, and will therefore focus on identifying the major trends of the market.
† The blue/red background has many layers and will make the chart lag as the user interacts with it.
‡ Bearish states are coded as negative quantities, so a bearish state x negative price action = positive number, and bullish state x positive price action = positive number.
6. Suggestions and Guidelines
As described in section (2.1), the indicator used in this strategy was designed to determine the state of the market--whether it is bullish or bearish--as well as the change in the state of the market--whether it is increasingly bullish or increasingly bearish. As such, the following suggestions are provided based on the principles of the indicator's design,
1. Response Time 1 should be less than (<) Response Time 2 which should be < Response Time 3
2. Fast Period < Moderate Period < Slow Period
3. In terms of the period of a full market cycle (e.g. ~ 4 years for BTC, ~ 5.5 years for equities, etc.), response times 1, 2, and 3 should be about 0.3% to 1%, 3% to 20%, and 20% to 50% of a full market cycle period, respectively. However, this is a loose guideline.
4. In terms of the period of a full market cycle, periods 1, 2, and 3 should all be about 25% to 75% of a full cycle period. Again, this is a loose guideline.
4. EMA 1 Length < EMA 2 Length < EMA 3 Length < EMA 4 Length
5. EMA Lengths 1, 2, 3, and 4 should be limited to about 1/4th the length of a full market cycle. Note, EMA lengths are measured in bars (candles), not in days. 1/4th of 1000 days is 250 days which is 250 x 4 = 1000 6-hr candles.
The following guidelines are provided based on results of over 100 backtests on the BTCUSD chart using randomized parameters †,
1. 9 days < Response Time 1 < 14 days
2. 5 days < EMA 1 Length < 100 days
3. 600 days < EMA 4 length < 1000 days
4. The ratio of the EMA range (EMA 4 len - EMA 1 len) to the sum of EMA lengths (EMA 1 len + EMA 2 len + ...) be greater than 0.4
5. The ratio of the sum of EMA 1 and EMA 2 lengths to the sum of EMA 3 and EMA 4 lengths be less than 0.3.
A suggestion from the author: Given that backtests show a high degree of outperformance using the guidelines enumerated above, a good trading strategy may be to not rely on any one particular combination of parameters. Rather, a random set of combinations of parameter settings that adhere to the guidelines above could be used to create multiple instances of the strategy in a TradingView chart, each of which varies by a small amount due to their unique parameter settings. The proportion of the entire set of strategy instances that agree about the current state of the market could indicate to the trader the level of confidence of the indicator, in aggregate.
† A sample dataset of backtest results using randomized parameters is available upon request; notably, all trials outperformed the intended market (Bitcoin).
7. General Remarks About the Indicator
Other than some exponential moving averages, no traditional technical indicators or technical analysis tools are employed in this strategy. No MACD, no RSI, no CMF, no Bollinger bands, parabolic SARs, Ichimoku clouds, hoosawatsits, XYZs, ABCs, whatarethese. No tea leaves can be found in this strategy, only mathematics. It is in the nature of the underlying math formula, from which the indicator is produced, to quickly identify trend changes.
8. Remarks About Expectations of Future Results and About Backtesting
8.1. In General
As it's been stated in many prospectuses and marketing literature, "past performance is no guarantee of future results." Backtest results are retrospective, and hindsight is 20/20. Therefore, no guarantee can, nor should, be expressed by me or anybody else who is selling a financial product (unless you have a money printer, like the Federal Reserve does).
8.2. Regarding This Strategy
No guarantee of future results using this strategy is expressed by the author, not now nor at any time in the future.
With that written, the author is free to express his own expectations and opinions based on his intimate knowledge of how the indicator works, and the author will take that liberty by writing the following: As described in section (7), this trading strategy does not include any traditional technical indicators or TA tools (other than smoothing EMAs). Instead, this strategy is based on a principle that does not change, it employs a complex indicator that is based on a math formula that does not change, and it places trades based on five simple rules that do not change. And, as described in section (2.1), the indicator is designed to capture the full character of the market, from a macro/global scope down to a micro/local scope. Additionally, as described in section (3), outperformance of the market for which this strategy was intended during backtesting does not depend on luckily setting the parameters "just right." In fact, all random combinations of parameter settings that followed the guidelines outperformed the intended market in backtests. Additionally, no parameters are included within the underlying math formula from which the indicator is produced; it is not as if the formula contains a "5" and future outperformance would depend on that "5" being a "6" instead. And, again as described, it is in the nature of the formula to quickly identify trend changes. Therefore, it is the opinion of the author that the outperformance of this strategy in backtesting is directly attributable to the fundamental nature of the math formula from which the indicator is produced. As such, it is also the opinion of the author that continued outperformance by using this strategy, applied to the crypto (Bitcoin) market, is likely, given that the parameter settings are set reasonably and in accordance with the guidelines. The author does not, however, expect future outperformance of this strategy to match or exceed the outperformance observed in backtests using the default parameters, i.e. it probably won't outperform by anything close to 13,000,000% during the next 9 years.
Additionally, based on the rolling 1-month outperformance data listed in section (3), expectations of short-term outperformance should be kept low; the median 1-month outperformance was -2%, so it's basically a 50/50 chance that any significant outperformance is seen in any given month. The true strength of this strategy is to be out of the market during large, sharp declines and capitalizing on the opportunities presented at the bottom of those declines by buying the dip. Given that such price action does not happen every month, outperformance in the initial months of use is approximately as likely as underperformance.
9. Access
Those who are interested in using this strategy may send a personal message to inquire about how to gain access. Those who are interested in acquiring the sample dataset of backtest results may send a personal message to request a copy of the data.
Power X Strategy Back-testThis script back-test the Power X Strategy developed by Markus Heitkoetter and Rockwell Trading. For more detail about the strategy, please refer to "The PowerX Strategy: How to Trade Stocks and Options in Only 15 Minutes a Day" written by Markus Heitkoetter. Note that this script is not publish, develop or maintain by Rockwell Trading, and may have different results. Rockwell Trading has a powerful software called Power X Optimizer, which scan, back-test and optimize the best stock for the strategy.
The Power X Strategy uses RSI , Slow Stochastic and MACD indicators under the hood. When RSI and slow Stochastic are both greater than 50 and MACD crosses up the signal line, it marks as up-trend. If RSI and slow stochastic are both less than 50 and MACD crosses down the signal line, it marks as down-trend. Other are mark as no trend.
This back-test makes a long entry with an up-trend momentum and short entry with down-trend momentum. Trade is exited when profit target or stop lose is reach. Profit target and stop lose is calculated based on 7 days Average Daily Range (ADR).
If the either of the momentum is lost, trade is exited the next day. It also skips the entire month of March 2020, since the market crash and is not in a normal market condition for the strategy.
Psychological for Strategy testingHello everyone
I've made Psychological to be able to adjust some variables for strategy.
When you adjust each parameter of the settings, the strategy tester also comes to work in conjunction with.
so please find your best parameter! ^^
I'm not very good at English, so i really want to write how to use Pychological's entry and exit too ,but please look up psychological entries as they are well known.
Notice:
There may be some programming mistakes, so please take your own responsibility when actually investing.
Simple Momentum Strategy Based on SMA, EMA and VolumeA simple, non short selling (long positions only, i.e. buy low and sell high) strategy. Strategy makes use of simple SMA, EMA and Volume indicators to attempt to enter the market at the most optimum time (i.e. when momentum and price are moving upwards). Optimum time is defined mainly by picking best timing for price moves higher based on upwards momentum.
This script is targeted / meant for an average/typical trader or investor. This is why a non short selling approach was selected for optimisation for this strategy because "typpical", "average" traders and investors usually use basic (i.e. minimum fees / free membership) exchanges that would not usually offer short selling functionality (at least without additional fees). The assumption used here is that only advanced and sophisticated traders and investors would pay for advanced trading platforms that enable short selling, have a risk appetite for short selling and thus use short selling as a strategy.
The results of the strategy are:
In an overall roughly bearish market (backward testing from beginning to end of 2018) i.e. the market immediately following the highs of around 20k USD per BTC, this strategy made a loss of £3231 USD on trades of a maximum of 1 BTC per long position.
But in an overall bullish market, it makes a profit of about $6800 USD from beginning of 2019 onwards by trading a maximum of 1 BTC per long position.
NOTE: All trading involves high risk. Most strategies use past performance and behaviour as indicators of future performance and that is not necessarily indicative of future results. Hypothetical or simulated performance results have certain inherent limitations too. One limitation is that unlike an actual performance record, simulated results do not represent actual trading and since the trades have not actually been executed, the results of those trades themselves do not have any influence on actual market results, which in real life they would have had (no matter how minor). Additionally, simulated results may have under or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also, by their nature, designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown.
Gap Filling Strategy Gaps are market prices structures that appear frequently in the stock market, and can be detected when the opening price is different from the previous closing price, this is why gaps are also called "opening price jumps". While gaps can occur frequently, some of them are more significant than others, and can be observed when looking at a long term chart.
The following strategy is based on the exploitation of significant gaps occurring during a new session, and posses various options that can return a wide variety of results.
Type Of Gaps And Occurence
I'am not a professional when it comes to gaps, but as you know the stock market close for the day, however it is still possible to place orders, your broker will hold them until the market open back. Once the market reopen the broker execute the pending orders, and when many orders where pending the market register really high volume and the price might differ from the precedent close.
Gaps are generally broken down into four types:
Common : Gaps occurring within a certain price range, mostly occurs during ranging markets.
Break Away : Gaps breaking a support and resistance, making a new higher high/lower low.
Runaway : Gaps occurring within a trend, followed by a continuation of the trend.
Exhaustion : Gaps occurring at the end of a trend, followed by a reversal.
As said before, some gaps are more significant than others, the significance of a gap can be determined by comparing the opening price with the previous high/low price and by looking at volume. Significant up gaps will have an opening price greater than the previous high, while significant down gap will have an opening price lower than the previous low with both high volume accompanying them.
After a gap, when the price go back to the point previous to the gap we say that it has been "filled", this characteristic is what will be exploited in this strategy.
Strategy Rules & Logic
In this strategy, the significance of a gap is determined by the position of the opening price relative to the previous high/low and make sure the bar following the gap don't fill it.
When the setting invert is set to false the strategy interpret the detected gaps as being exhaustion gaps, therefore when an up gap occur a short position is opened, when a down gap occur a long position is opened. When invert is set to true gaps are considered to be runaway or break away gaps, therefore the contrary positions are opened. Positions are exited when the gap has been filled, which in the chart is show'n when the price cross the red level who act as either a take profit (invert = false) or as a stop loss (invert = true).
There are various closing conditions available that the user can select from the "close when" setting.
New Session : This option close all previous positions when the market is in a new session.
New Gap : This option close all previous position when a new gap has been detected.
Reverse Position : This option close all previous position when a contrary position to the current one is opened. This option would reduce the number of trades.
Testing On Some Stocks
The analysis will be tested in different tech stocks with a main TF of 15 minutes with no spread and commissions applied. Default settings will be used. We'll be making our first analysis using AMD, who has recently formed a full reverse HS pattern, where the neckline has been crossed by the price. (by the way i have a bad feeling about it, hey ! feeling filling ! Lame jokes!)
Profit: $ -12.22
Trades: 272
Profitability: 65.07 %
We can see negative results, with an heavily decreasing balance. Using invert would return positive results.
We will now test the strategy on NVDA, the company is one of the biggest when it comes to the Gpu market.
Profit: $ -215.54
Trades: 297
Profitability: 60.27 %
Not better, using invert would of course create better results. Like AMD the balance is heavily decreasing.
Finally we will test the strategy on Seagate technology, a company mostly known for their mechanical hard drives.
Profit: $ -4.32
Trades: 261
Profitability: 65.9 %
Here the balance does not appear so heavily decreasing and even managed to reach back the initial balance before going down again.
Summary
A strategy based on gap filling has been briefly introduced and tested with 3 tech stocks. The results show that using invert option might be better. The advantage of this strategy against ones using technical indicators is that this one does not heavily depend on user settings, which make it way more efficient, this a big advantage of patterns based strategies.
Thx to LucF for helping with the "process_orders_on_close" element, since i had to use closing price i had to remove it tho, was afraid results would differ even more from a more realistic backtest. And thx for those who continuously support me, more cool stuff is coming up.
Thx for reading and i hope you'll have learned something new today !
bot strategy1分足逆張りです.この前公開したのよりは遥かに高性能(なはず)です.strategy.exitでstop使ってます.少し詳しくは英文で.
This strategy is the counter trade strategy that I am actually trying to implement, and is realized by a simple combination of 3 indicators (maybe 2 ?. eg. sma ). There is no plan to release the strategy, but it is a script that I personally expect because I am hooked on how to stop the contrarian and the timing of entry. I don't use "security" ,but using strategy.enter(limit) and strategy.exit(stop). It seems that the performance is better than the publicly available "stoploss" because it is not a specific price (eg. 500) range but a variable according to the market price. Since all entry, close, and stop values are shown in the graph, it is possible to find the value back from that value. Good luck.
※Tested environment : FXBTCJPY , 1min
Bollinger Bands BAT/USDT 30minThis is ready to use Bollinger Band strategy that was backtested on the data from the previous year 2019.
The main purpose of this strategy is to determine trades with the highest probability of success, to keep a consistent portfolio growth throughout the year. This strategy cherry-picks the most reliable points of entry on a particular timeframe (30m) for the particular asset (BAT/USDT). The backtest shows a great result of 78.95% profitability with the maximum drawdown of -4.02%. This is one of my strategies out of the group of automated strategies that helps to grow my portfolio steadily.
You are welcome to change inputs and backtest the following strategy. Any comments or ideas would be appreciated.
If you are happy with existing results and would like to automate the strategy, which can be done through alerts, then you need to convert it to study and add alerts in the code.
Let me know if you are interested in that and I will create a study based on this strategy.
TradersAI_UTBotCREDITS to @HPotter for the orginal code.
CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code -
I just added some simple code to turn it into a strategy. Now, anyone can simply add the strategy to their chart to see the backtesting results!
While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above, I am happy to share that this seems to be working on a 15-minute chart on e-mini S&P 500 Index (using the KeyValue setting at 10)! You can play around with the different settings, and may be you might discover even better settings.
Hope this helps. Btw, if any of you play with different settings and discover great settings for a specific instrument, please share them with the community here - it will be rewarded back multiple times!
Full Range Trading Strategy with DCA - Crypto, Forex, Stocks
Introduction
This is a Pine 4 range trading strategy. It has a twin study with several alerts. The design intent is to produce a commercial grade signal generator that can be adapted to any symbol and interval. Ideally, the script is reliable enough to be the basis of an automated trading system web-hooked to a server with API access to crypto, forex and stock brokerages. The strategy can be run in three different modes: long, short and bidirectional.
As a range trading strategy, the behavior of the script is to buy on weakness and sell on strength. As such trade orders are placed in a counter direction to price pressure. What you will see on the chart is a short position on peaks and a long position on valleys. Just to be clear, the range as well as trends are merely illusions as the chart only receives prices. However, this script attempts to calculate pivot points from the price stream. Rising pivots are shorts and falling pivots are longs. I refer to pivots as a vertex in this script which adds structural components to the chart formation. When trading in “Ping Pong” mode long and short positions are intermingled continuously as long as there exists a detectable vertex. Unfortunately, this can work against your backtest profitability on long duration trends where prices continue in a single direction without pullback. I have designed various features in the script to compensate for this event. A well configured script should perform in a range bound market and minimize losses in a trend. I also have a trend following version of this script for those not interested in trading the range. Please be aware these are two types of traders. You should know who you are.
This script employs a DCA feature which enables users to experiment with loss recovery techniques. This is an advanced feature which can increase the order size on new trades in response to stopped out or winning streak trades. The script keeps track of debt incurred from losing trades. When the debt is recovered the order size returns to the base amount specified in the TV properties tab. The inputs for this feature include a limiter to prevent your account from depleting capital during runaway markets. This implementation of DCA does not use pyramid levels. Only the order size on subsequent new trades are affected. Pyramids on the other hand increase the size of open positions. If you are interested in seeing pyramids in action please see the trend version of this script which features both DCA and pyramids. While DCA is a popular feature in crypto trading, it can make you a “bag” holder if your not careful. In other markets, especially margin trading, you’ll need a well funded account and much trading experience to manage this feature safely.
Consecutive loss limit can be set to report a breach of the threshold value. Every stop hit beyond this limit will be reported on a version 4 label above the bar where the stop is hit. Use the location of the labels along with the summary report tally to improve the adaptability of system. Don’t simply fit the chart. A good trading system should adapt to ever changing market conditions. On the study version the consecutive loss limit can be used to halt live trading on the broker side (managed manually).
Design
This script uses twelve indicators on a single time frame. The original trading algorithms are a port from a much larger program on another trading platform. I’ve converted some of the statistical functions to use standard indicators available on TradingView. The setups make heavy use of the Hull Moving Average in conjunction with EMAs that form the Bill Williams Alligator as described in his book “New Trading Dimensions” Chapter 3. Lag between the Hull and the EMAs form the basis of the entry and exit points. The vertices are calculated using one of five featured indicators. Each indicator is actually a composite of calculations which produce a distinct mean. This mathematical distinction enables the script to be useful on various instruments which belong to entirely different markets. In other words, at least one of these indicators should be able generate pivots on an arbitrarily selected instrument. Try each one to find the best fit.
The entire script is around 1800 lines of Pine code which is the maximum incidental size given the TradingView limits: local scopes, run-time duration and compile time. I’ve been working on this script for nearly two years and have tested it on various instruments stocks, forex and crypto. It performs well on higher liquidity markets that have at least a year of historical data. Although the script can be implemented on any interval, it has been optimized for small time frames down to 5 minutes. The 10 minute BTC/USD produces around 500 trades in 2 ½ months. The 1 hour BTC/USD produces around 1300 trades in 1 ½ years. Originally, this script contained both range trading and trend following logic but had to be broken into separate scripts due to the aforementioned limitations.
Inputs to the script use cone centric measurements in effort to avoid exposing adjustments to the various internal indicators. The goal was to keep the inputs relevant to the actual trade entry and exit locations as opposed to a series of MA input values and the like. As a result the strategy exposes over 50 inputs grouped into long or short sections. Inputs are available for the usual minimum profit and stop-loss as well as safeguards, trade frequency, DCA, modes, presets, reports and lots of calibrations. The inputs are numerous, I’m aware. Unfortunately, at this time, TradingView does not offer any other method to get data in the script. The usual initialization files such as cnf, cfg, ini, json and xml files are currently unsupported.
Example configurations for various instruments along with a detailed PDF user manual is available.
Indicator Repainting And Anomalies
Indicator repainting is an industry wide problem which mainly occurs when you mix backtest data with real-time data. It doesn't matter which platform you use some form of this condition will manifest itself on your chart over time. The critical aspect being whether live trades on your broker’s account continue to match your TradingView study.
Tackling this repainting issue has been a major project goal of this script. Based on my experience with Pine, most of the problems stem from TradingView’s implementation of multiple interval access. Whereas most platform provide a separate bar series for each interval requested, the Pine language interleaves higher time frames with the primary chart interval. The problem is exacerbated by allowing a look-ahead parameter to the Security function. The goal of my repaint prevention is simply to ensure that my signal trading bias remains consistent between the strategy, study and broker. That being said this is what I’ve done address this issue in this script:
1. This script uses only 1 time frame. The chart interval.
2. Every entry and exit condition is evaluated on closed bars only.
3. No security functions are called to avoid a look-ahead possibility.
4. Every contributing factor specified in the TradingView wiki regarding this issue has been addressed.
5. I’ve run a 10 minute chart live for a week and compared it to the same chart periodically reloaded. The two charts were highly correlated with no instances of completely opposite real-time signals.
The study does indeed bring up the TV warning dialog. The only reason for this is because the script uses an EMA indicator which according to TradingView is due to “peculiarities of the algorithm”.
One issue that comes up when comparing the strategy with the study is that the strategy trades show on the chart one bar later than the study. This problem is due to the fact that “strategy.entry()” and “strategy_exit()” do not execute on the same bar called. The study, on the other hand, has no such limitation since there are no position routines.
Please be aware that the data source matters. Cryptocurrency has no central tick repository so each exchange supplies TradingView its feed. Even though it is the same symbol the quality of the data and subsequently the bars that are supplied to the chart varies with the exchange. This script will absolutely produce different results on different data feeds of the same symbol. Be sure to backtest this script on the same data you intend to receive alerts for. Any example settings I share with you will always have the exchange name used to generate the test results.
Usage
The following steps provide a very brief set of instructions that will get you started but will most certainly not produce the best backtest. A trading system that you are willing to risk your hard earned capital will require a well crafted configuration that involves time, expertise and clearly defined goals. As previously mentioned, I have several example configs that I use for my own trading that I can share with you along with a PDF which describes each input in detail. To get hands on experience in setting up your own symbol from scratch please follow the steps below.
The input dialog box contains over 50 inputs separated into five sections. Each section is identified as such with a makeshift separator input. There are three main areas that must to be configured: long side, short side and settings that apply to both. The rest of the inputs apply to DCA, reporting and calibrations. The following steps address these three main areas only. You will need to get your backtest in the black before moving on to the more advanced features.
Step 1. Setup the Base currency and order size in the properties tab.
Step 2. Select the calculation presets in the Instrument Type field.
Step 3. Select “No Trade” in the Trading Mode field.
Step 4. Select the Histogram indicator from Section 2. You will be experimenting with different ones so it doesn’t matter which one you try first.
Step 5. Turn on Show Markers in Section 2.
Step 6. Go to the chart and checkout where the markers show up. Blue is up and red is down. Long trades show up along the red markers and short trades on the blue.
Step 7. Make adjustments to “Base To Vertex” and “Vertex To Base” net change and roc in Section 3. Use these fields to move the markers to where you want trades to be.
Step 8. Try a different indicator from Section 2 and repeat Step 7 until you find the best match for this instrument on this interval. This step is complete when the Vertex settings and indicator combination produce the most favorable results.
Step 9. Go to Section 3 and enable “Apply Red Base To Base Margin”.
Step 10. Go to Section 4 and enable “Apply Blue Base To Base Margin”.
Step 11. Go to Section 2 and adjust “Minimum Base To Base Blue” and “Minimum Base To Base Red”. Observe the chart and note where the markers move relative to each other. Markers further apart will produce less trades but will reduce cutoffs in “Ping Pong” mode.
Step 12. Return to Section 3 and 4 and turn off “Base To Base Margin” which was enabled in steps 9 and 10.
Step 13. Turn off Show Markers in Section 2.
Step 14. Put in your Minimum Profit and Stop Loss in the first section. This is in pips or currency basis points (chart right side scale). Percentage is not currently supported. This is a fixed value minimum profit and stop loss. Also note that the profit is taken as a conditional exit on a market order not a fixed limit. The actual profit taken will almost always be greater than the amount specified. The stop loss, on the other hand, is indeed a hard number which is executed by the TradingView broker simulator when the threshold is breached. On the study version, the stop is executed at the close of the bar.
Step 15. Return to step 3 and select a Trading Mode (Long, Short, BiDir, Ping Pong). If you are planning to trade bidirectionally its best to configure long first then short. Combine them with “BiDir” or “Ping Pong” after setting up both sides of the trade individually. The difference between “BiDir” and “Ping Pong” is that “Ping Pong” uses position reversal and can cut off opposing trades less than the specified minimum profit. As a result “Ping Pong” mode produces the greatest number of trades.
Step 16. Take a look at the chart. Trades should be showing along the markers plotted earlier.
Step 17. Make adjustments to the Vertex fields in Section 2 until the TradingView performance report is showing a profit. This includes the “Minimum Base To Base” fields. If a profit cannot be achieved move on to Step 18.
Step 18. Improve the backtest profitability by adjusting the “Long Entry Net Change” and “Long Entry ROC” in Section 3.
Step 19. Improve the backtest profitability by adjusting the “Short Entry Net Change” and “Short Entry ROC” in Section 4.
Step 20. Improve the backtest profitability by adjusting the “Sparse Long Delta” in Section 3.
Step 21. Improve the backtest profitability by adjusting the “Chase Long Delta” in Section 3.
Step 22. Improve the backtest profitability by adjusting the “Long Adherence Delta” in Section 3. This field requires the “Adhere to Rising Trend” checkbox to be enabled.
Step 23. Try each checkbox in Section 3 and see if it improves the backtest profitability. The “Caution Lackluster Longs” checkbox only works when “Long Caution Mode” is enabled.
Step 24. Improve the backtest profitability by adjusting the “Sparse Short Delta” in Section 4.
Step 25. Improve the backtest profitability by adjusting the “Chase Short Delta” in Section 4.
Step 26. Improve the backtest profitability by adjusting the “Short Adherence Delta” in Section 4. This field requires the “Adhere to Falling Trend” checkbox to be enabled.
Step 27. Try each checkbox in Section 4 and see if it improves the backtest profitability. The “Caution Lackluster Shorts” checkbox only works when “Short Caution Mode” is enabled.
Step 28. Enable the reporting conditions in Section 5. Look for long runs of consecutive losses or high debt sequences. These are indications that your trading system cannot withstand sudden changes in market sentiment.
Step 29. Examine the chart and see that trades are being placed in accordance with your desired trading goals. This is an important step. If your desired model requires multiple trades per day then you should be seeing hundreds of trades on the chart. Alternatively, you may be looking to trade fewer steep peaks and deep valleys in which case you should see trades at major turning points. Don’t simply settle for what the backtest serves you. Work your configuration until the system aligns with your desired model. Try changing indicators and even intervals if you cannot reach your simulation goals. Generally speaking, the histogram and Candle indicators produce the most trades. The Macro indicator captures the tallest peaks and valleys.
Step 30. Apply the backtest settings to the study version and perform forward testing.
This script is open for beta testing. After successful beta test it will become a commercial application available by subscription only. I’ve invested quite a lot of time and effort into making this the best possible signal generator for all of the instruments I intend to trade. I certainly welcome any suggestions for improvements. Thank you all in advance.
Total Trend Follow Strategy with Pyramid and DCA
Introduction
This is a Pine 4 trend following strategy. It has a twin study with several alerts. The design intent is to produce a commercial grade signal generator that can be adapted to any symbol and interval. Ideally, the script is reliable enough to be the basis of an automated trading system web-hooked to a server with API access to crypto, forex and stock brokerages. The strategy can be run in three different modes: long, short and bidirectional.
As a trend following strategy, the behavior of the script is to buy on strength and sell on weakness. As such the trade orders maintain its directional bias according to price pressure. What you will see on the chart is long positions on the left side of the mountain and short on the right. Long and short positions are not intermingled as long as there exists a detectable trend. This is extremely beneficial feature in long running bull or bear markets. The script uses multiple setups to avoid the situation where you got in on the trend, took a small profit but couldn’t get back in because the logic is waiting for a pullback or some other intricate condition.
Deep draw-downs are a characteristic of trend following systems and this system is no different. However, this script makes use of the TradingView pyramid feature accessible from the properties tab. Additional trades can be placed in the draw-down space increasing the position size and thereby increasing the profit or loss when the position finally closes. Each individual add on trade increases its order size as a multiple of its pyramid level. This makes it easy to comply with NFA FIFO Rule 2-43(b) if the trades are executed here in America. The inputs dialog box contains various settings to adjust where the add on trades show up, under what circumstances and how frequent if at all. Please be advised that pyramiding is an advanced feature and can wipe out your account capital if your not careful. During the backtest use modest setting with realistic capital until you discover what you think you can handle.
In addition to pyramiding this script employs DCA which enables users to experiment with loss recovery techniques. This is another advanced feature which can increase the order size on new trades in response to stopped out or winning streak trades. The script keeps track of debt incurred from losing trades. When the debt is recovered the order size returns to the base amount specified in the TV properties tab. The inputs for this feature include a limiter to prevent your account from depleting capital during runaway markets. The main difference between DCA and pyramids is that this implementation of DCA applies to new trades while pyramids affect open positions. DCA is a popular feature in crypto trading but can leave you with large “bags” if your not careful. In other markets, especially margin trading, you’ll need a well funded account and much experience.
Consecutive loss limit can be set to report a breach of the threshold value. Every stop hit beyond this limit will be reported on a version 4 label above the bar where the stop is hit. Use the location of the labels along with the summary report tally to improve the adaptability of system. Don’t simply fit the chart. A good trading system should adapt to ever changing market conditions. On the study version the consecutive loss limit can be used to halt live trading on the broker side (Managed manually).
Design
This script uses nine indicators on two time frames. The chart (primary) interval and one higher time frame which is based on the primary. The higher time frame identifies the trend for which the primary will trade. I’ve tried to keep the higher time frame around five times greater than the primary. The original trading algorithms are a port from a much larger program on another trading platform. I’ve converted some of the statistical functions to use standard indicators available on TradingView. The setups make heavy use of the Hull Moving Average in conjunction with EMAs that form the Bill Williams Alligator as described in his book “New Trading Dimensions” Chapter 3. Lag between the Hull and the EMAs form the basis of the entry and exit points. The alligator itself is used to identify the trend main body.
The entire script is around 1700 lines of Pine code which is the maximum incidental size given the TradingView limits: local scopes, run-time duration and compile time. I’ve been working on this script for over a year and have tested it on various instruments stocks, forex and crypto. It performs well on higher liquidity markets that have at least a year of historical data. Though it can be configured to work on any interval between 5 minutes and 1 day, trend trading is generally a longer term paradigm. For day trading the 10 to 15 minute interval will allow you to catch momentum breakouts. For intraweek trades 30 minutes to 1 hour should give you a trade every other a day. Four hours and above are for seasoned deep pocket traders. Originally, this script contained both range trading and trend following logic but had to be broken into separate scripts due to the aforementioned limitations.
Inputs to the script use cone centric measurements in effort to avoid exposing adjustments to the various internal indicators. The goal was to keep the inputs relevant to the actual trade entry and exit locations as opposed to a series of MA input values and the like. As a result the strategy exposes over 50 inputs grouped into long or short sections. Inputs are available for the usual minimum profit and stop-loss as well as safeguards, trade frequency, DCA, modes, presets, reports and lots of calibrations. The inputs are numerous, I’m aware. Unfortunately, at this time, TradingView does not offer any other method to get data in the script. The usual initialization files such as cnf, cfg, ini, json and xml files are currently unsupported.
Example configurations for various instruments along with a detailed PDF user manual is available.
Indicator Repainting And Anomalies
Indicator repainting is an industry wide problem which mainly occurs when you mix backtest data with real-time data. It doesn't matter which platform you use some form of this condition will manifest itself on your chart over time. The critical aspect being whether live trades on your broker’s account continue to match your TradingView study. Since this trading system is featured as two separate scripts, indicator repainting is addressed in the study version. The strategy (this script) is intended to be used on historical data to determine the appropriate trading inputs to apply in the study. As such, the higher time frame of this strategy will indeed repaint. Please do not attempt to trade from the strategy. Please see the study version for more information.
One issue that comes up when comparing the strategy with the study is that the strategy trades show on the chart one bar later than the study. This problem is due to the fact that “strategy.entry()” and “strategy_exit()” do not execute on the same bar called. The study, on the other hand, has no such limitation since there are no position routines. However, alerts that are subsequently fired off when triggered in the study are dispatched from the TradingView servers one bar later from the study plot. Therefore the alert you actually receive on your cell phone matches the strategy plot but is one bar later than the study plot. A lot can happen in four hours if you are trading off a 240 bar.
Please be aware that the data source matters. Cryptocurrency has no central tick repository so each exchange supplies TradingView its feed. Even though it is the same symbol the quality of the data and subsequently the bars that are supplied to the chart varies with the exchange. This script will absolutely produce different results on different data feeds of the same symbol. Be sure to backtest this script on the same data you intend to receive alerts for. Any example settings I share with you will always have the exchange name used to generate the test results.
Usage
The following steps provide a very brief set of instructions that will get you started but will most certainly not produce the best backtest. A trading system that you are willing to risk your hard earned capital will require a well crafted configuration that involves time, expertise and clearly defined goals. As previously mentioned, I have several example configs that I use for my own trading that I can share with you along with a PDF which describes each input in detail. To get hands on experience in setting up your own symbol from scratch please follow the steps below.
The input dialog box contains over 50 inputs separated into seven sections. Each section is identified as such with a makeshift separator input. There are three main areas that must to be configured: long side, short side and settings that apply to both. The rest of the inputs apply to pyramids, DCA, reporting and calibrations. The following steps address these three main areas only. You will need to get your backtest in the black before moving on to the more advanced features
Step 1. Setup the Base currency and order size in the properties tab.
Step 2. Select the calculation presets in the Instrument Type field.
Step 3. Select “No Trade” in the Trading Mode field.
Step 4. Select the Histogram indicator from section 3. You will be experimenting with different ones so it doesn’t matter which one you try first.
Step 5. Turn on Show Markers in Section 3.
Step 6. Go to the chart and checkout where the markers show up. Blue is up and red is down. Long trades show up along the blue markers and short trades on the red.
Step 7. Make adjustments to Base To Vertex and Vertex To Base net change and roc in section 3. Use these fields to move the markers to where you want trades to be. Blue is long and red is short.
Step 8. Try a different indicator from section 3 and repeat Step 7 until you find the best match for this instrument on this interval. This step is complete when the Vertex settings and indicator combination produce the most favorable results.
Step 9. Turn off Show Markers in Section 3.
Step 10. Enable the Symmetrical and Deviation calculation models at the top of section 5 and 6 (Symmetrical, Deviation).
Step 11. Put in your Minimum Profit and Stop Loss in the first section. This is in pips or currency basis points (chart right side scale)
Step 12. Return to step 3 and select a Trading Mode (Long, Short, BiDir, Flip Flop). If you are planning to trade bidirectionally its best to configure long first then short. Combine them with BiDir or Flip Flop after setting up both sides of the trade individually.
Step 13. Trades should be showing on the chart.
Step 14. Make adjustments to the Vertex fields in section 3 until the TradingView performance report is showing a profit.
Step 15. Change indicators and repeat step 14. Pick the best indicator.
Step 16. Use the check boxes in sections 5 and 6 to improve the performance of each side.
Step 17. Try adding the Correlation calculation model to either side. This model can sometimes produce a negative result but can be improved by enabling “Adhere To Markers” or “Narrow Correlation Scope” in the sections 5 and 6.
Step 18. Enable the reporting conditions in section 7. Look for long runs of consecutive losses or high debt sequences. These are indications that your trading system cannot withstand sudden changes in market sentiment.
Step 19. Examine the chart and see that trades are being placed in accordance with your desired trading model.
Step 20. Apply the backtest settings to the study version and perform forward testing.
This script is open for beta testing. After successful beta test it will become a commercial application available by subscription only. I’ve invested quite a lot of time and effort into making this the best possible signal generator for all of the instruments I intend to trade. I certainly welcome any suggestions for improvements. Thank you all in advance.
QuantCat Mom Finder Strategy (1H)QuantCat Momentum Finder Strategy
This strategy is designed to be used on the 1 hour time frame, on all x/btc pairs.
The beautiful thing is it plots the take profit, and stoploss for you for each entry- where I would say use the stoploss for sure and feel with water with how the price action is looking when in profit.
In this strategy, I actually implemented my own trading style into building the strategy. Having to replicate my own trading strategy into an algorithm, I can't make it exactly perfect to how I would trade, but what I can do is try and program the parameters that give it the absolute best chance of making a big move with a small drawdown- which replicates part of my momentum trading style. Here I am using RSI, MACD, EMA and trend filtering values to find moments where there has been a momentum change to play the rest of the move. It only picks the best entries.
There is always a 3-4 R/R move on average with with these trades, meaning 1 in 4 only need to hit to be a break even trader- where most of these strategies have about 35% hit rate.
The stoploss is so crucial to minimise any damage from huge unexpected candles, the strategies can just be used for entries as well, you don't have to stick to the exact formula- of the long and short system, but this by itself is profitable.
The system nets positive results on
-ETH/BTC
-LTC/BTC
-XRP/BTC
-ADA/BTC
-NEO/BTC etc.
We also have a free 15M strategy available too.
You can join our discord server to get live alerts for the strategy as well as speak to our devs! Link in signature below!!!
DepthHouse Trading System [Gods Envelope] Backtest StrategyCreated for Bitcoin!
*All testing has been done on the 1 Day time frame of BTC USD pairs.
Use at your own risk.
DepthHouse Trading System Basics
The Cloud:
The cloud is used in a very similar manner as the ichimoku cloud. A complete cross above or below the represents a macro trend change. The cloud then could be used as dynamic support and resistance zones.
By default there is no smoothing to the full cloud. If you wish to add smoothing, you can change the ‘Trend Base On’ option to ‘Modded Cloud Average’ to add price action and smoothing into the cloud’s calculations. The Modded Cloud can then be used in the same manner as the Full Cloud. Generally, the Full Cloud is more forgiving and has less Macro Trend changes. By default, this option is turned off. The support or resistance zone created will be shown on the info panel on the right.
Horizontal Levels:
A Horizonal zone is generated each time there is a micro level trend change. For example, as soon as a positive micro trend change occurs a green horizontal level will be plotted.
These levels then can be used as temporary support and resistance zones. The Horizontal Break Trading Strategy is entirely based on these levels. These levels are also shown on the info panel on the right.
The Envelope Itself: (by default this is off)
By selecting the Overbought and Oversold Ranges option, a cloud envelope will appear around the price action. This envelope represents the overbought and oversold ranges. If the price action should go into these zones, the info panel on the right will show ‘CAUTION’ beside the God Values as this signals that the pair is either overbought or oversold.
The God Values:
The God values are listed on the info panel on the right. These are the values created by the Godmode indicator. Generally, below 20 or above 80 it signals for caution as the price action has overextended itself.
The Back-Test Strategy Options:
⇅ - Child Fomo Positioning:
Child Fomo Positioning strategy is entirely based on the macro trend change with the center cloud. As soon as there is a complete candle close above or below the cloud and a trend change takes place. The back-test places a market order as soon as the next candle opens. By default, it then will not close this position until the price action fully crosses the cloud once again.
⇅ - Horizontal Break Trading:
Horizontal Break Trading Strategy is entirely based on the horizontal levels generated and the macro trend direction. For example, say the Macro Trend is up, and a green, positive horizontal level is formed. As soon as a complete candle closes above the upper level of the positive zone, a limit order is placed in hope that the price action comes back down and retests, filling the order. This long will not close then until a negative level is formed. As soon as a negative level is formed a stop/loss order is placed on the lower level of the horizontal support zone. It will then do the opposite in a bearish trend, and margin trading is turned on.
⇅ - Parent Positions :
Parent Positioning Strategy is based on the overall trend and the center cloud levels. This strategy has limit orders waiting on the level of the cloud that is closest to the price action. Therefore, using this strategy alone, the back-test system waits for the trend to be confirmed, and then follows the price action with limit orders waiting on the cloud to be retested. By default this order does not close until a Marco trend change occurs.
⇅ - Take 50% Partial Profits:
This options allows the back-test to take 50% profit or loss when one of the two options occur.
Horizontal Break: This would close 50% of the position in the same manner it would close a trade using the horizontal break trading system.
God Values: Once the price action enters the oversold or overbought clouds, it would then place a close order as soon as the price action exits the cloud.
⟲ - Backtest Year Start Date :
Start year of the back-testing. If set to ex. 2017, the back-test will not calculate any trades that took place before Jan. 1 of 2017.
⚖ - Margin Trading :
By default, margin trading is turned off. Simply switch this option to on the enable ‘Short Trading’ into the strategy back-test.
Notes: If you are back testing multiple strategies at the same time, you must increase the pyramiding to correspond to the number or strategies.
My Favorite Settings:
Margin = Off
Pyramiding = 2 [Settings → Properties → Pyramiding → 2 orders
Child Fomo Positioning = On
Horizontal Break Trading = On
Everything else off 😊
DISCLAIMER: Past performance does not guarantee future results.
Use at your own risk.
Double 7's StrategyStrategy described in the book "Short Term Trading Strategies that Work", written by Larry Connors and Cesar Alvarez.
It is the simplest strategy I know and has only 3 rules:
- Price must be above the arithmetic moving average of 200 periods.
- Buy when the price closes below the closing of the last 7 days.
- Sale when the price closes above the closing of the last 7 days.
Simple as it may seem, this strategy works very well in some stocks and/or graphical times (in some stocks it overcomes many RSI 2 strategies). It was developed for the daily chart and does not usually work well on weekly or monthly charts, but can be used for day trades if the back-test proves to be favorable.
If you want, you can change the input and output rules by setting other values for the input or output period and thus find more positive results for specific stocks.
There is no stop loss because in tests the stop loss usually reduces the gains of the strategy.
Good luck and good trades.
================================
Estrategia descrita no livro "Short Term Trading Strategies that Work", escrito por Larry Connors e Cesar Alvarez.
É a estratégia mais simples que eu conheço e tem apenas 3 regras:
- Preço deve estar acima da média móvel aritmética de 200 períodos.
- Compre quando o preço fechar abaixo do fechamento dos ultimos 7 dias.
- Venda quando o preço fechar acima do fechamento dos ultimos 7 dias.
Por mais simples que pareça, esta estratégia funciona muito bem em alguns papeis e/ou tempos gráficos (em alguns papeis a mesma supera muitas estratégias pelo IFR2). A mesma foi desenvolvida para o gráfico diário e normalmente não funciona muito bem em gráficos semanais ou mensais, mas pode ser utilizado no intraday caso o backtest se mostre favorável.
Caso você queira, é possível alterar a regra de entrada e saída definindo outros valores para o período de entrada ou saída e assim encontrar resultados mais positivos para cada papel.
Não existe stop loss pois nos testes normalmente o stop loss reduz os ganhos da estratégia.
Boa sorte e bons trades.
Combo Backtest 123 Reversal & Bill Williams Averages. 3Lines This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
This indicator calculates 3 Moving Averages for default values of
13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2).
The most popular method of interpreting a moving average is to compare
the relationship between a moving average of the security's price with
the security's price itself (or between several moving averages).
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Bear Power This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
Bear Power Indicator
To get more information please see "Bull And Bear Balance Indicator"
by Vadim Gimelfarb.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & (H-L)/C Histogram This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
This histogram displays (high-low)/close
Can be applied to any time frame.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Bandpass FilterThis is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
The related article is copyrighted material from
Stocks & Commodities Mar 2010
You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Average True Range Trailing Stops This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
Average True Range Trailing Stops Strategy, by Sylvain Vervoort
The related article is copyrighted material from Stocks & Commodities Jun 2009
WARNING:
- For purpose educate only
- This script to change bars colors.